/**
 * 他们俩之间的差别在于参数的区别，call和apply的第一个参数都是要改变上下文的对象，
 * 而call从第二个参数开始以参数列表的形式展现，
 * apply则是把除了改变上下文对象的参数放在一个数组里面作为它的第二个参数。
 */
let obj = {name: 'tony'};
  
function Child(name){
  this.name = name;
}

Child.prototype = {
  constructor: Child,
  showName: function(){
    console.log(this.name);
  }
}
var child = new Child('thomas');
child.showName(); // thomas

//  call,apply,bind使用
child.showName.call(obj);
child.showName.apply(obj);
let bind = child.showName.bind(obj); // 返回一个函数
bind(); // tony
